﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using CBE.Model;
using Common.UI.Report;
using CBE.ServiceLogic;
using CBE.UI.Control.Views;
using CBE.UI.Control.Presenters;

namespace CBE.UI.Control
{
    public class ReporteVentasDelMesController : GenericReportController<ReporteVentasDelMesView, ReporteVentasDelMesCriteria, ReporteVentasDelMesServiceLogic>
    {
        public override string Title
        {
            get
            {
                return "Reporte ventas del mes";
            }
        }

        protected override void CreateEntityPresentationModel()
        {
            this.ReportPresentationModel = new ReporteVentasDelMesReportPresentationModel(this.CreateFilterView(), this.CreateListView());
        }

        protected override Common.UI.Report.Views.FilterDataView CreateFilterDataView()
        {
            return new ReporteVentasDelMesFilterDataView();
        }

        protected override void AddColumnDefinitions()
        {
            this.ReportPresentationModel.AddColumnDefinition(ReporteVentasDelMesView.NombreApellidoClientePropertyName, "Nombre y Apellido");
            this.ReportPresentationModel.AddColumnDefinition(ReporteVentasDelMesView.FechaVentaStringPropertyName, "Fecha de venta");
            this.ReportPresentationModel.AddColumnDefinition(ReporteVentasDelMesView.ServiciosPropertyName, "Servicios");
            this.ReportPresentationModel.AddColumnDefinition(ReporteVentasDelMesView.FormaPagoPropertyName, "Forma de pago");
            this.ReportPresentationModel.AddColumnDefinition(ReporteVentasDelMesView.ImportePropertyName, "Importe");
            this.ReportPresentationModel.AddColumnDefinition(ReporteVentasDelMesView.ImporteServiciosPropertyName, "Importe de servicios");
            this.ReportPresentationModel.AddColumnDefinition(ReporteVentasDelMesView.ImporteBonificadoPropertyName, "Importe bonificado");
            this.ReportPresentationModel.AddColumnDefinition(ReporteVentasDelMesView.ImporteProductosPropertyName, "Importe de productos");
            this.ReportPresentationModel.AddColumnDefinition(ReporteVentasDelMesView.TieneTurnoAsociadoPropertyName, "Tiene turno asociado");
        }
    }
}
